package xfuzzy.alg_genetico.indeterminado.xfghlOld.model.spec;
import xfuzzy.lang.*;

public class pruebaEstru {
	

	/**
	 * @param args
	 * @throws XflException 
	 */
	@SuppressWarnings("unused")
	public static void main(String[] args) throws XflException {

		/*Creamos el conjunto de operadores*/
		Operatorset opSet=new Operatorset();
		//Producto para el and
		opSet.set(new xfuzzy.pkg.xfl.binary.prod(), FuzzyOperator.AND);
		//Defuz
		opSet.set(new xfuzzy.pkg.xfl.defuz.FuzzyMean(), FuzzyOperator.DEFUZMETHOD);
				
		
		/*Vamos a crearnos los universos*/		
	    Universe uniIn=new Universe(2,5);
	    Universe uniOut=new Universe(3,4);	    
	    Universe uniInner=new Universe();	    
	    
    	/* Vamos a crearnos un m�dulo
    	 * 2 tipos de entrada y 1 tipo de salida*/
	    Type t1in=new Type("TIn1",uniIn);
	    Type t2in=new Type("TIn2",uniIn);
	    Type tinner=new Type("TInner",uniInner);
	    Type tout=new Type("TOut",uniOut);
	    	   
	    xfuzzy.pkg.xfl.mfunc.trapezoid trap1=new xfuzzy.pkg.xfl.mfunc.trapezoid();
	    xfuzzy.pkg.xfl.mfunc.triangle tri=new xfuzzy.pkg.xfl.mfunc.triangle();
	    xfuzzy.pkg.xfl.mfunc.trapezoid trap2=new xfuzzy.pkg.xfl.mfunc.trapezoid();
	    
	    trap1.set("Trapecio1",uniIn);
	    tri.set("Triangulo",uniIn);
	    trap2.set("Trapecio2",uniIn);
	    
	    
	    Parameter [] par= trap1.getSingleParameters();
	    par[0].value=5;
	    par[1].value=7;
	    par[2].value=10;
	    par[3].value=12;
	    

	    par= trap2.getSingleParameters();
	    par[0].value=10;
	    par[1].value=12;
	    par[2].value=14;
	    par[3].value=16;

	    
	    par=tri.getSingleParameters();
	    par[0].value=10;
	    par[1].value=12;
	    par[2].value=14;
	    
	    	    	    
	    
	    t1in.add(trap1);
	    t1in.add(tri);
	    t1in.add(trap2);
	    
	    LinguisticLabel [] lista1=t1in.getAllMembershipFunctions();
	    
	    System.out.println("El n�mero total es: "+lista1.length);
	    for (LinguisticLabel linguisticLabel : lista1) {
			System.out.println(linguisticLabel.getLabel());
		}
	    
	    //t1in.add(new pkg.xfl.mfunc.trapezoid());
	    
	    System.out.printf(t1in.toXfl());
	   // System.out.printf(t2in.toXfl());
	   // System.out.printf(tinner.toXfl());
	   // System.out.printf(tout.toXfl());	            	    
	    
	    pruebaEstru p=new pruebaEstru();	    
	    //System.out.printf(XfghlTypeOut.create(t1in*t2in, uniOut, XfghlTypeOut.FunctionOutFuzzyMean).toXfl());
	    //System.out.printf(p.createTypeOut(t1in,t2in, uniOut, pruebaEstru.FunctionOutWeightedFuzzyMean).toXfl());
	    
	  //  System.out.printf(p.createRuleSet("Base Conociento", t1in, (Type)t1in.clone(), p.createTypeOut(t1in,t2in, uniOut, pruebaEstru.FunctionOutFuzzyMean), opSet).toXfl());
	    	   
	    
	}

}
